package com.bestcem.xm.member.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.member.controller.vo.ListFootprintsVO;
import com.bestcem.xm.member.entity.pojo.FootprintDO;
import com.bestcem.xm.member.grpc.service.param.PageParam;
import com.bestcem.xm.member.grpc.service.param.footprint.ListFootprintRespondentSeqsParam;
import com.bestcem.xm.member.service.dto.FootprintDTO;
import com.bestcem.xm.member.service.param.AddFootprintParam;

import java.util.List;

/**
 * @author ming.xue <ming.xue@idiaoyan.com>
 * @desc 足迹服务
 * @date 2021-08-17
 */
public interface FootprintService {

    /**
     * 获取足迹点列表
     *
     * @param orgId     企业标识
     * @param memberId  联系人标识
     * @param pageParam 分页参数
     * @return 分页查询单个联系人的足迹点列表VO
     * @author ympan <yuming.pan@idiaoyan.com>
     * @date 18:16 2021/12/15
     */
    ServiceResult<ListFootprintsVO> listFootprints(String orgId, String memberId, PageParam pageParam,
                                                   String userId, Integer superAdmin, Integer seniorAdmin);

    /**
     * 获取足迹点列表
     *
     * @param orgId
     * @param memberId
     * @return
     */
    ServiceResult<List<FootprintDTO>> listFootprints(String orgId, String memberId);

    /**
     * 新增足迹点
     *
     * @param param
     * @return
     */
    ServiceResult<String> addFootprint(AddFootprintParam param);

    /**
     * 发布足迹点
     *
     * @param param
     * @return
     */
    ServiceResult<String> publishFootprint(AddFootprintParam param);

    /**
     * 获取该组织下 足迹点的答卷编号
     *
     * @param param
     * @return
     */
    ServiceResult<List<String>> listFootprintRespondentSeqs(ListFootprintRespondentSeqsParam param);

    /**
     * 获取答卷 copy足迹点
     *
     * @return
     */
    List<FootprintDO> listFootprintsByIsCopy();

    /**
     * 更新
     *
     * @param item
     */
    void updateContent(FootprintDO item);
}
